
PROGRAM 0   669 BYTES

   DPY-8248 REPAIR R0 - PRESS CONT
   STOP
   DPY-TEST 1 INITIAL I/O READ
0: LABEL 0
   DPY-TEST 1
   READ @ C012FE
   IF REGE = 39 GOTO 1
   DPY-ERROR IN TEST 1
   STOP
1: LABEL 1
   DPY-TEST 2
   READ @ C012EC
   IF REGE = 0 GOTO 2
   DPY-ERROR IN TEST 2
   STOP
2: LABEL 2
   WRITE @ C012FC = 0
   WRITE @ C012C0 = 21
   WRITE @ C01292 = 12
   WRITE @ C012AA = 03
   WRITE @ C012AA = 05
   WRITE @ C012AA = 06
   WRITE @ C012B0 = 01
   DPY-CNTRL TO Z80-WAIT FOR INTRQ
   WRITE @ C012D0 = 0
3: LABEL 3
   READ @ C012FE
   IF REGE = 39 GOTO 3
   DPY-INTRQ RECE1VED
   READ @ C012EC
   IF REGE = 20 GOTO 4
   DPY-ERROR IN TEST 3-READ INT 1
   STOP
4: LABEL 4
   WRITE @ C012AA = 05
   READ @ C012EC
   IF REGE = 0 GOTO 5
   DPY-ERR TEST 4- NO CLR TO INT1
   STOP
5: LABEL 5
   WRITE @ C01292 = 06
   EXECUTE PROGRAM 4
   WRITE @ C012D0 = 0
   WRITE @ C01292 = 02
6: LABEL 6
   DPY-WAITING FOR INTRQ VIA INT2
   READ @ C012FE
   IF REGE = 39 GOTO 6
   READ @ C012EC
   IF REGE = 40 GOTO 7
   DPY-ERR TEST 5-NO INT2?
   STOP
7: LABEL 7
   WRITE @ C012AA = 06
   READ @ C012EC
   IF REGE = 0 GOTO 8
   DPY-ERR TEST 6-NO INT2 CLEAR
8: LABEL 8
   EXECUTE PROGRAM 1
   EXECUTE PROGRAM 2
   DPY-PARITY TEST NEXT VIA Z80
   EXECUTE PROGRAM 6
   EXECUTE PROGRAM 7
   DPY-END OF TESTS FROM THIS END
   STOP
   STOP

PROGRAM 1   33 BYTES

   WRITE @ C012FC = 0
   WRITE @ C01292 = 12
   WRITE @ C012D0 = 0

PROGRAM 2   234 BYTES

0: LABEL 0
   READ @ C012FE
   DPY-WAITING FOR JUMPER REMOVAL
   IF REGE = 39 GOTO 0
   WRITE @ C01292 = 1A
   READ @ C012EC
   IF REGE = 28 GOTO 1
   DPY-ERROR IN TEST 7-FORCED PERR
   STOP
1: LABEL 1
   WRITE @ C012AA = 05
   READ @ C012FE
   IF REGE = B9 GOTO 3
   DPY-ERR TEST 8-NO INTRQ Z80 PAR
   STOP
3: LABEL 3
   WRITE @ C012AA = 03
   READ @ C012EC
   IF REGE = 0 GOTO 4
   DPY-ERR TEST 9-NO CLR Z80 PAR
   STOP
4: LABEL 4

PROGRAM 3   2 BYTES


PROGRAM 4   454 BYTES

   REG8 = 10
   EXECUTE PROGRAM 5
   WRITE @ 20000 = E9
   EXECUTE PROGRAM 5
   WRITE @ 20000 = E9
   EXECUTE PROGRAM 5
   WRITE @ 820001 = FE
   EXECUTE PROGRAM 5
   WRITE @ 820001 = FE
   EXECUTE PROGRAM 5
   WRITE @ 20002 = FD
   EXECUTE PROGRAM 5
   WRITE @ 20002 = FD
   EXECUTE PROGRAM 5
   WRITE @ 20004 = FB
   EXECUTE PROGRAM 5
   WRITE @ 20004 = FB
   EXECUTE PROGRAM 5
   WRITE @ 20008 = F7
   EXECUTE PROGRAM 5
   WRITE @ 20008 = F7
   EXECUTE PROGRAM 5
   WRITE @ 20010 = EF
   EXECUTE PROGRAM 5
   WRITE @ 20010 = EF
   EXECUTE PROGRAM 5
   WRITE @ 20020 = DF
   EXECUTE PROGRAM 5
   WRITE @ 20020 = DF
   EXECUTE PROGRAM 5
   WRITE @ 20040 = BF
   EXECUTE PROGRAM 5
   WRITE @ 20040 = BF
   EXECUTE PROGRAM 5
   WRITE @ 20080 = 7F
   EXECUTE PROGRAM 5
   WRITE @ 20080 = 7F
   EXECUTE PROGRAM 5
   WRITE @ 20100 = 01
   EXECUTE PROGRAM 5
   WRITE @ 20100 = 01
   EXECUTE PROGRAM 5
   WRITE @ 20200 = 02
   EXECUTE PROGRAM 5
   WRITE @ 20200 = 02
   EXECUTE PROGRAM 5
   WRITE @ 20400 = 04
   EXECUTE PROGRAM 5
   WRITE @ 20400 = 04
   EXECUTE PROGRAM 5
   WRITE @ 20800 = 08
   EXECUTE PROGRAM 5
   WRITE @ 20800 = 08
   EXECUTE PROGRAM 5
   WRITE @ 21000 = 10
   EXECUTE PROGRAM 5
   WRITE @ 21000 = 10
   EXECUTE PROGRAM 5
   WRITE @ 22000 = 20
   EXECUTE PROGRAM 5
   WRITE @ 22000 = 20
   EXECUTE PROGRAM 5
   WRITE @ 24000 = 40
   EXECUTE PROGRAM 5
   WRITE @ 24000 = 40
   EXECUTE PROGRAM 5
   WRITE @ 28000 = 80
   EXECUTE PROGRAM 5
   WRITE @ 28000 = 80
   EXECUTE PROGRAM 5

PROGRAM 5   21 BYTES

   REG1 = REG8
1: LABEL 1
   DEC REG1
   IF REG1 > 0 GOTO 1

PROGRAM 6   132 BYTES

   WRITE @ C012AA = 05
   WRITE @ C012AA = 06
   WRITE @ C01292 = 06
   WRITE @ 20000 = E9
   WRITE @ 20000 = E9
   WRITE @ C01292 = 02
   WRITE @ C012D0 = 0
1: LABEL 1
   READ @ C012EC
   REGE = REGE AND 40
   IF REGE = 40 GOTO 2
   GOTO 1
2: LABEL 2
   WRITE @ C012D0 = 0
   WRITE @ C012D0 = 0

PROGRAM 7   190 BYTES

   DPY-WAITING TO SEND ZINT1
0: LABEL 0
   READ @ C012EC
   REGE = REGE AND 20
   IF REGE = 20 GOTO 1
   GOTO 0
1: LABEL 1
   WRITE @ C012AA = 06
   WRITE @ C01296 = 0
   DPY-SENT ZINT1-READY TO SEND 2
2: LABEL 2
   READ @ C012EC
   REGE = REGE AND 40
   IF REGE = 40 GOTO 3
   GOTO 2
3: LABEL 3
   WRITE @ C012AA = 05
   WRITE @ C012AA = 06
   WRITE @ C01298 = 0
   DPY-SENT ZINT2

PROGRAM 8   271 BYTES

   DPY-Z80 SIGNATURES-PRESS CONT
   WRITE @ C012FC = 0
   WRITE @ C012C0 = 21
   WRITE @ C01292 = 16
   WRITE @ 20000 = E9
   WRITE @ 20000 = E9
   WRITE @ C01292 = 02
   WRITE @ C012AA = 03
   WRITE @ C012AA = 05
   WRITE @ C012AA = 06
   WRITE @ C012B0 = 01
   WRITE @ C012D0 = 0
   DPY-RUN SIGS FROM MILLENNIUM
   STOP
   DPY-8086 SIGS-PRESS CONT
   STOP
   DPY-HOOK-UP PROBES-PRESS CONT
   STOP
1: LABEL 1
   DPY-8086 FAULT ISOLATION RTN
   WRITE @ C012AA = 05
   EXECUTE PROGRAM 9
   GOTO 1

PROGRAM 9   472 BYTES

0: LABEL 0
   READ @ C012EC
   WRITE @ C012FC = 0
   WRITE @ C012C0 = 21
   WRITE @ C01292 = 06
   WRITE @ C01292 = 02
   WRITE @ C012AA = 03
   WRITE @ C012AA = 05
   WRITE @ C012AA = 06
   WRITE @ C012B0 = 01
   WRITE @ C01292 = 1A
   WRITE @ C01292 = 0B
   WRITE @ C01292 = 52
   WRITE @ C01292 = 72
   WRITE @ C01292 = 72
   WRITE @ C01292 = 92
   WRITE @ C01292 = 92
   WRITE @ C01292 = 92
   WRITE @ C01292 = B2
   WRITE @ C01292 = D2
   WRITE @ C01292 = D2
   WRITE @ C01292 = F2
   WRITE @ C01292 = F2
   WRITE @ C01292 = F2
   WRITE @ C01296 = 0
   WRITE @ C01298 = 0
1: LABEL 1
   WRITE @ C01298 = 0
   REG2 = 03
2: LABEL 2
   WRITE @ C012AA = REG2
   INC REG2
   IF REG2 = 7 GOTO 3
   GOTO 2
3: LABEL 3
   READ @ C012EC
   READ @ C012FE
   READ @ C012FE
   READ @ C012FE
   READ @ C012EC
   READ @ C012EC
   READ @ C012EC
   READ @ C012EC
   WRITE @ C012B0 = 01
   WRITE @ C012B0 = 01
   WRITE @ C012D0 = 0
   WRITE @ C012C0 = 21
   WRITE @ C012C0 = 21
   DPY-END OF SIGNATURE ROUTINE

PROGRAM 10   596 BYTES

   DPY-8086 MEM SIGS-PRESS CONT
   STOP
0: LABEL 0
   WRITE @ C012FC = 0
   WRITE @ C012C0 = 21
   WRITE @ C01292 = 16
   WRITE @ C012AA = 03
   WRITE @ C012AA = 05
   WRITE @ C012AA = 06
   WRITE @ C012B0 = 01
   GOTO 3
4: LABEL 4
   REG8 = 20
   EXECUTE PROGRAM 5
   READ PROBE
   SYNC DATA
   WRITE @ 21000 = 00
   WRITE @ REGF = REGE
   GOTO 2
1: LABEL 1
   WRITE @ REGF = FF
   WRITE @ REGF = REGE
2: LABEL 2
   DTOG @ REGF = REGE BIT 0
   DTOG @ REGF = REGE BIT 1
   DTOG @ REGF = REGE BIT 2
   DTOG @ REGF = REGE BIT 3
   DTOG @ REGF = REGE BIT 4
   DTOG @ REGF = REGE BIT 5
   DTOG @ REGF = REGE BIT 6
   DTOG @ REGF = REGE BIT 7
   DTOG @ REGF = REGE BIT 8
   DTOG @ REGF = REGE BIT 9
   DTOG @ REGF = REGE BIT 10
   DTOG @ REGF = REGE BIT 11
   DTOG @ REGF = REGE BIT 12
   DTOG @ REGF = REGE BIT 13
   DTOG @ REGF = REGE BIT 14
   DTOG @ REGF = REGE BIT 15
   READ @ REGF
   IF REGE = 8000 GOTO 1
   EXECUTE PROGRAM 15
   DPY-LVL=$A  SIG=$9  CNT=@8 DSIG
   REG8 = 15
   EXECUTE PROGRAM 5
   GOTO 0
3: LABEL 3
   REG3 = 02
8: LABEL 8
   READ PROBE
   SYNC ADDRESS
   WRITE @ 820001 = 55
   ATOG @ 20000 BIT 1
   ATOG @ REGF BIT 2
   ATOG @ REGF BIT 3
   ATOG @ REGF BIT 4
   ATOG @ REGF BIT 5
   ATOG @ REGF BIT 6
   ATOG @ REGF BIT 7
   ATOG @ REGF BIT 8
   ATOG @ REGF BIT 9
   ATOG @ REGF BIT 10
   ATOG @ REGF BIT 11
   ATOG @ REGF BIT 12
   ATOG @ REGF BIT 13
   ATOG @ REGF BIT 14
   ATOG @ REGF BIT 15
   ATOG @ REGF BIT 16
   ATOG @ REGF BIT 17
   ATOG @ REGF BIT 18
   ATOG @ REGF BIT 19
   EXECUTE PROGRAM 15
   WRITE @ C01292 = 02
   DPY-LVL=$A  SIG=$9  CNT=@8 ASIG
   DEC REG3
   IF REG3 = 0 GOTO 9
   GOTO 8
9: LABEL 9
   GOTO 4

PROGRAM 15   98 BYTES

   READ PROBE
   REG8 = REG0 AND 7F
   REG9 = REG0
   REG9 = REG9 SHR SHR SHR SHR
   REG9 = REG9 SHR SHR SHR SHR AND FFFF
   REGA = REG0
   REGA = REGA SHR SHR SHR SHR
   REGA = REGA SHR SHR SHR SHR
   REGA = REGA SHR SHR SHR SHR
   REGA = REGA SHR SHR SHR SHR
   REGA = REGA SHR SHR SHR SHR
   REGA = REGA SHR SHR SHR SHR
